@echo off
chcp 65001 >nul
echo ========================================
echo 学生信息管理系统 - Vue.js前端启动脚本
echo ========================================
echo.

:: 切换到脚本所在目录
cd /d "%~dp0"
echo 当前目录：%CD%
echo.

:: 检查是否在正确的目录
if not exist "package.json" (
    echo 错误：package.json文件不存在
    echo 请确保在frontend-vue目录下运行此脚本
    echo 当前目录：%CD%
    pause
    exit /b 1
)

echo 正在启动Vue.js前端服务...
echo.

:: 检查Node.js环境
node --version >nul 2>&1
if %errorlevel% neq 0 (
    echo 错误：未找到Node.js环境，请先安装Node.js 16或更高版本
    echo 下载地址：https://nodejs.org/
    pause
    exit /b 1
)

:: 检查npm环境
npm --version >nul 2>&1
if %errorlevel% neq 0 (
    echo 错误：未找到npm环境，请检查Node.js安装
    pause
    exit /b 1
)

echo 环境检查通过：
node --version
npm --version
echo.

:: 检查是否已安装依赖
if not exist "node_modules" (
    echo 正在安装项目依赖...
    echo 这可能需要几分钟时间，请耐心等待...
    echo.
    call npm install
    if %errorlevel% neq 0 (
        echo 依赖安装失败，请检查网络连接或npm配置
        echo 尝试使用国内镜像源...
        call npm install --registry https://registry.npmmirror.com
        if %errorlevel% neq 0 (
            echo 依赖安装仍然失败，请手动检查网络连接
            pause
            exit /b 1
        )
    )
    echo 依赖安装完成！
    echo.
) else (
    echo 检测到已安装的依赖包
    echo.
)

:: 设置默认端口
set PORT=3000

:: 检查端口是否被占用
:check_port
netstat -an | findstr ":%PORT%" >nul
if %errorlevel% equ 0 (
    echo 端口 %PORT% 已被占用，尝试使用端口 %PORT%+1
    set /a PORT+=1
    goto check_port
)

echo 使用端口：%PORT%
echo.

:: 启动开发服务器
echo ========================================
echo 正在启动Vue.js开发服务器...
echo 服务器地址：http://localhost:%PORT%
echo 按 Ctrl+C 停止服务器
echo ========================================
echo.

:: 设置环境变量并启动
set PORT=%PORT%
echo [信息] 正在执行：npm run serve
echo [信息] 请稍等，服务器正在启动中...
echo [信息] 如果长时间无响应，请检查网络连接
echo.

:: 启动服务并捕获错误
call npm run serve 2>&1

:: 检查启动结果
if %errorlevel% neq 0 (
    echo.
    echo ========================================
    echo [错误] Vue.js开发服务器启动失败
    echo ========================================
    echo 请检查以下可能的问题：
    echo 1. Node.js和npm是否正确安装
    echo 2. 项目依赖是否完整安装 (运行 npm install)
    echo 3. 端口是否被其他程序占用
    echo 4. 网络连接是否正常
    echo 5. 防火墙是否阻止了端口访问
    echo.
    echo 建议解决方案：
    echo - 重新安装依赖：npm install
    echo - 清除缓存：npm cache clean --force
    echo - 使用调试脚本：start-debug.bat
    echo ========================================
    echo.
    pause
    exit /b 1
)

:end
echo.
echo 服务器已停止
pause
